home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / comm / wnos5src.zip / HS.H < prev    next >
Text File  |  1993-08-09  |  2KB  |  75 lines

  1. #ifndef    _HS_H
  2. #define    _HS_H
  3. /* Hardware-dependent routines for the DRSI or Eagle cards for the PC
  4.  * driving a high speed modem. These cards both contain Zilog 8530s.
  5.  */
  6.  
  7. #define    NHS    1            /* One card max */
  8.  
  9. struct hs {
  10.     struct {
  11.         INTERRUPT (*vec) __ARGS((void));
  12.     } save;
  13.  
  14.     int16 addr;            /* Base I/O adHsess */
  15.     int16 vec;            /* Vector */
  16.     long ints;            /* Interrupt count */
  17. };
  18. extern struct hs Hs[];
  19.  
  20. /* Register offset info, specific to the DRSI PCPA and Eagle cards
  21.  * E.g., to read the data port on channel A, use
  22.  *      inportb(hdlc[dev].base + CHANA + DATA)
  23.  */
  24. #define    CHANB        0    /* Base of channel B regs */
  25. #define    CHANA        2    /* Base of channel A regs */
  26.  
  27. /* 8530 ports on each channel */
  28. #define    CTL            0
  29. #define    DATA        1
  30.  
  31. struct hdlc {
  32.     long rxints;            /* Receiver interrupts */
  33.     long txints;            /* Transmitter interrupts */
  34.     long exints;            /* External/status interrupts */
  35.     long spints;            /* Special receiver interrupts */
  36.     long rxbytes;            /* Total receive bytes */
  37.     long nomem;                /* Buffer allocate failures */
  38.     long toobig;            /* Giant receiver packets */
  39.     long crcerr;            /* CRC Errors */
  40.     long aborts;            /* Receiver aborts */
  41.     long good;                /* Valid frames */
  42.     long txpkts;
  43.     long overrun;            /* Receiver overruns */
  44.  
  45.     int16 bufsiz;            /* Size of rcvbuf */
  46.  
  47.     int dev;                /* Device number */
  48.     int clkrev;                /* Clock pins swapped */
  49.     int16 ctl;                /* Control register */
  50.     int16 data;                /* Data register */
  51.     int16 speed;            /* Line speed, bps */
  52.     int txdelay;            /* Keyup delay, ticks */
  53.     int persist;            /* P-persistence value */
  54.     struct mbuf *txq;        /* Transmit queue */
  55.  
  56.     struct iface *iface;    /* Associated interface */
  57.     int32 deftime;            /* Time when we can next transmit */
  58. };
  59.  
  60. #define    OFF        0
  61. #define    ON        1
  62.  
  63. /* Baud rate generator definitions */
  64. struct baudrate {
  65.     int16 speed;
  66.     char val;
  67. };
  68. /* In hs.c: */
  69. void hsint __ARGS((int dev));
  70.  
  71. /* In hsvec.asm: */
  72. INTERRUPT hs0vec __ARGS((int dev));
  73.  
  74. #endif /* _HS_H */
  75.